/*
 * =====================================================================================
 *
 *       Filename:  Contex.h
 *
 *    Description:  电梯的控制面板
 *
 *        Version:  1.0
 *        Created:  01/04/2022 04:00:22 PM
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  first_name last_name (fl), fl@my-company.com
 *        Company:  my-company
 *
 * =====================================================================================
 */

#pragma once
#include "LiftState.h"
#include "OpenningState.h"
#include "CloseingState.h"
#include "RunningState.h"
#include "StoppingState.h"
class Context {
  public:
    Context();
    ~Context();
    LiftState* GetLiftState();
    void SetLiftState(LiftState* pLiftState);
    void Open();
    void Close();
    void Run();
    void Stop();
  public:
    static OpenningState* pOpenningState;
    static CloseingState* pCloseingState;
    static RunningState* pRunningState;
    static StoppingState* pStoppingState;

  private:
    LiftState* m_pLiftState;
};
